package queens.forms;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.Globals;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.Resources;

import queens.beans.BusquedaClientesBean;
import queens.beans.ClienteBean;
import queens.util.Constantes;

@SuppressWarnings("serial")
public class BusquedaClientesForm extends QueensForm {
	
	private BusquedaClientesBean busquedaClientesBean = new BusquedaClientesBean();
	@SuppressWarnings("unchecked")
	private List listaClientes;
	private String[] claveCliente;
	private ClienteBean clienteBean = new ClienteBean();
	
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();
		if(Resources.getMessage(request,"buscar").equals(this.accion)){
			if(this.busquedaClientesBean.getTermino().length() < Constantes.LONGITUD_MIN_TERMINO_BUSQUEDA){
				errors.add("errorGenerico", 			   new ActionError("errors.termino.busqueda.corto"));
				errors.add("busquedaClientesBean.termino", new ActionError(""));
			}
		}else if((Resources.getMessage(request,"editar").equals(this.accion)) || (Resources.getMessage(request,"borrar").equals(this.accion))){
			if((this.claveCliente == null) || (this.claveCliente.length > 1)){
				errors.add("errorGenericoResultado", new ActionError("errors.seleccionar.uno"));
				errors.add("claveCliente",  		 new ActionError(""));
			}
		}else if(Resources.getMessage(request,"seleccionar").equals(this.accion)){
			errors = super.validate(mapping, request);
		}
		
		if(faltaCampoObligatorio(errors)){
			errors.add("errorGenerico", new ActionError("falta.obligatorio"));
		}
		
		request.getSession().setAttribute(Globals.ERROR_KEY,errors);
		return null;
	}

	public BusquedaClientesBean getBusquedaClientesBean() {
		return busquedaClientesBean;
	}

	public void setBusquedaClientesBean(BusquedaClientesBean busquedaClientesBean) {
		this.busquedaClientesBean = busquedaClientesBean;
	}

	@SuppressWarnings("unchecked")
	public List getListaClientes() {
		return listaClientes;
	}

	@SuppressWarnings("unchecked")
	public void setListaClientes(List listaClientes) {
		this.listaClientes = listaClientes;
	}

	public String[] getClaveCliente() {
		return claveCliente;
	}

	public void setClaveCliente(String[] claveCliente) {
		this.claveCliente = claveCliente;
	}

	public ClienteBean getClienteBean() {
		return clienteBean;
	}

	public void setClienteBean(ClienteBean clienteBean) {
		this.clienteBean = clienteBean;
	}
	
	
}